﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.System.Web.Control.CheckFileExist
 * 类型：       服务端输入校验类
 * 功能说明：   文件存在校验类
 * 作者：       郭晓庆
 * 创建日期：   2007/07/10
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using System.IO;

namespace Shpm.System.Web.Control
{
    public class CheckFileExist: ComAbsChecker
    {
         /**文件上传控件 */
	    private FileUpload upObj = null;

        /**
         * コンストラクタ
         * @param upObj 文件上传控件 
         */
        public CheckFileExist( String value,WebControl upObj)
            : base(value)
        {
	        this.upObj = upObj as FileUpload;
	    }

        public CheckFileExist(String value,WebControl upObj, Shpm.System.Validator.ComAbsMsg msg)
            : base(value, msg)
        {
            this.upObj = upObj as FileUpload;
        }

	    /**
	     * 文件读取。
	     * @param value 入力値
	     * @return true:正常 / false:异常
	     */
	    protected override bool doCheck(String value)
        {

		    // 未选择
		    if( upObj == null ){
			    return false;
		    }
    		
            //文件名检查
            if( !upObj.HasFile)
            {
                return false;

            }
		    

    		
		    try{
			    // 文件读去检查
                Stream input = upObj.FileContent;
			    if( input == null ){
				    return false;
			    }
			    // 文件内容检查
			    if( input.Length == 0 ){
				    return false;
			    }
			    return true;
		    }
		    catch
            {
			    return false;
		    }
	    }
    }
}
